It is desirable for an engine control system to know the crank angle during operation of an engine. Knowing the precise position of the crankshaft during the operation of the engine allows for the control system to determine and/or control a variety of engine parameters needed in order to achieve optimum performance for that engine. For example, one such control parameter is spark plug ignition timing. By timing when the spark plug fires precisely with the position of a piston attached to the crankshaft it is possible to get maximum power from the engine while limiting wear to the cylinder and piston structure.
Typically an apparatus that determines the rotational angle of the crankshaft of an engine includes an encoder wheel, a sensor, and a controller. The encoder wheel is a disc-shaped rotor, which rotates with the crank shaft or the cam shaft. The encoder wheel has a plurality of protruding-teeth or notch structures along the periphery of the rotor. The protruding-teeth or notch structures are not uniformly spaced around the periphery of the disc, and at certain sections one or more teeth may be missing or one or more notches may be enlarged or smaller in order to provide a unique portion of the disc. These non-uniform sections correlate to specific crankshaft rotational angles.
The sensor is configured to detect how many of these protruding-teeth or notches pass by and at what rate, and from the detected information form a pulse train where the non-uniform portions of the pulse train correlate to the sections of missing teeth or elongated or shortened notches, which in turn correlate to a certain crankshaft rotational angle.
Specialized software must be created within the controller prior to operation of the system to interpret the pulse train created from the sensor and encoder wheel. This can be accomplished by creating a table that correlates what the crankshaft rotational angle should be when a non-uniform portion of the pulse train is recognized. Therefore, while the engine is running, the controller makes the comparison between the pulse train from the sensor and the table, and from that information makes a determination of the crankshaft rotational angle.
Furthermore, while the above apparatus is typically found on systems used to determine the rotational angle of the crank shaft, a similar apparatus is used to determine the rotational angle of a cam shaft. Additionally, because the camshaft must be precisely timed to open and close the valves based on the position of the crank shaft, rotational angle information relating to the camshaft also relates to the crankshaft rotational angle. Therefore, the specialized software written to interpret the crankshaft position also must be able to take into account rotational angle position information from the camshaft.
Writing specialized software for any change in encoder wheel, be it for the cam shaft or crank shaft, is a time consuming process that requires many man hours to undertake. Further, various implementations of an engine may utilize different crankshaft and/or camshaft patterns that have different timing requirements. New software must be written to properly control actuators associated with each different camshaft and crankshaft combination. Many times the customer employing the engine will have to go back to the engine supplier to have this specialized software written thereby divulging potential trade secrets to an outside company.
Therefore, it would be advantageous to eliminate the need to create and sometimes recreate the specialized software needed to interpret the various encoder wheel systems. The invention eliminates the need to create specialized software by allowing an end user to create a data representation of an encoder wheel, and then using that data to seed an algorithm that determines the angular position of the encoder wheel. These and other advantages of the invention, as well as additional inventive features, will be apparent from the description of the invention provided herein.